home *** CD-ROM | disk | FTP | other *** search
/ Technotools / Technotools (Chestnut CD-ROM)(1993).ISO / lang_c / msqc25t1 / biosarea.h < prev    next >
C/C++ Source or Header  |  1990-09-22  |  3KB  |  83 lines

  1. /* biosarea.h: ROM BIOS data area at 0x0040:0 in memory */
  2.  
  3. #ifndef byte
  4. #define byte    unsigned char   /* define byte as a type */
  5. #endif
  6. #pragma pack(1)
  7.  
  8. /* BIT FIELDS USED IN ROM BIOS DATA AREA */
  9. typedef struct {
  10.     unsigned    hasFloppies : 1,    /* 1 = system has floppy drives */
  11.     nul : 1,                            /* not used */
  12.     mbRAM : 2,                      /* motherboard RAM size (obsolete) */
  13.     initVideo : 2,                      /* initial video mode */
  14.     nDisks : 2,                     /* nbr of floppy drives */
  15.     nu8 : 1,                            /* not used */
  16.     nSerialPorts : 3,               /* nbr of serial ports attached */
  17.     gamePort : 1,                       /* 1 = game port attached */
  18.     nul3 : 1,                       /* not used */
  19.     nLPT : 2;                           /* number of printers */
  20. } EQFLAGS;          /* this is the equipment flags structure */
  21.  
  22. typedef struct {
  23.     unsigned    riteShiftDown : 1,  /* 1 = right shift key down */
  24.                 leftShiftDown : 1,      /* 1 = left shift key down */
  25.                 ctrlShiftDown : 1,  /* 1 = ctrl-shift combo down */
  26.                 altShiftDown : 1,       /* 1 = alt-shift combo down */
  27.                 scrollLockOn : 1,   /* 1 = scroll lock mode on */
  28.                 numLockOn : 1,          /* 1 = num lock mode on */
  29.                 capsLockOn : 1,     /* 1 = caps lock mode on */
  30.                 insOn : 1,              /* 1 = ins mode on */
  31.                 unused : 3,         /* spare bits */
  32.                 ctrlNumLockOn : 1,      /* 1 = ctrl-NumLock mode on */
  33.                 scrollLockDown : 1, /* 1 = scroll lock key down */
  34.                 numLockDown : 1,        /* 1 = num lock key down */
  35.                 capsLockDown : 1,   /* 1 = caps lock key down */
  36.                 insDown : 1;            /* 1 = ins key down */
  37.     } KBDFLAGS;     /* this is the keyboard flags structure */
  38.  
  39. typedef struct {
  40.     unsigned    serialPortAddr[4];
  41.     unsigned    parallelPortAddr[4];
  42.     EQFLAGS     eqptFlags;
  43.     byte        mfgrTestFlags;
  44.     unsigned    mainMem;
  45.     unsigned    expRAM;
  46.     KBDFLAGS    kbdStat;
  47.     byte        keypad;
  48.     unsigned    kbdBuffHead;
  49.     unsigned    kbdBuffTail;
  50.     char        kbdBuff[32];
  51.     byte        seekStat;
  52.     byte        motorStat;
  53.     byte        motorCnt;
  54.     byte        diskErr;
  55.     byte        NECStatus[7];
  56.     byte        videoMode;
  57.     unsigned    scrnWidth;
  58.     unsigned    vidBuffSz;
  59.     unsigned    vidBuffOfs;
  60.     byte        cursPos[8][2];
  61.     byte        cursBottom;
  62.     byte        cursTop;
  63.     byte        activeDispPage;
  64.     unsigned    activeDispPort;
  65.     byte        CRTModeReg;
  66.     byte        palette;
  67.     unsigned    dataEdgeTimeCount;
  68.     unsigned    CRCReg;
  69.     char        lastInputValue;
  70.     unsigned    tick;
  71.     int         hour;
  72.     byte        timerOverflow;
  73.     byte        brkStat;
  74.     unsigned    resetFlag;
  75.     long        hardDiskStat;
  76.     byte        parallelTimeout[4];
  77.     byte        serialTimeout[4];
  78.     unsigned    kbdBuffOfs;
  79.     unsigned    kbdBuffEnd;
  80. } BIOSDATA;
  81.  
  82.  
  83.